package com.liuzu.esys.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

import com.liuzu.esys.common.LayuiPageVo;
import com.liuzu.esys.mapper.UserMapper;

import com.liuzu.esys.pojo.User;
import com.liuzu.esys.service.UserService;
import com.liuzu.esys.vo.TypeBarVo;
import com.liuzu.esys.vo.ZgyBarVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


import java.util.List;
import java.util.Map;

/**x
 * @author : 逸少
 * @time : 2022/7/25
 * @desc : 用户列表实现
 */
@Service("/userService")
public class UserServicelmpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    //分页展示数据和模糊查询的接口
    @Override
    public LayuiPageVo<User> userPageData(Map<String, Object> params) {
        //mybatis 的分页插件
        Integer page = Integer.parseInt(params.get("page") + "");
        Integer limit = Integer.parseInt(params.get("limit") + "");
        PageHelper.startPage(page, limit);
        List<User> users = userMapper.selectByParams(params);

        //mybatis 的分页数据结构
        PageInfo<User> userPageInfo = new PageInfo<>(users);
        //把 mybatis 的分页 数据 封装到 layui 的分页数据中

        LayuiPageVo<User> userLayuiPageVo = new LayuiPageVo<>();
        userLayuiPageVo.setCode(0);//layui 默认 0 是正确的状态码
        userLayuiPageVo.setMsg("分页列表数据");//提示信息
        userLayuiPageVo.setCount(userPageInfo.getTotal());//总记录数
        userLayuiPageVo.setData(userPageInfo.getList());//分页的列表数据
        return userLayuiPageVo;
    }

//    @Override
//    public List<User> UserList() {
//        return null;
//    }

    @Override
    public List<ZgyBarVo> sexBarData() {
        List<ZgyBarVo> list = userMapper.typeBarData();
        return list;
    }

    @Override
    public int addUser(User user) {

        return userMapper.addUser(user);
    }


    @Override
    public List<TypeBarVo> sexPieData() {
        List<TypeBarVo> list = userMapper.typePieData();
        return list;
    }


    @Override
    public int userUpdate(User user) {
        return userMapper.userUpdate(user);
    }

    @Override
    public int userDelete(int id) {
        return userMapper.userDelete(id);
    }


}
